import Vue from 'vue'
import axios from 'axios'
import qs from 'qs'

/*引入接口数据*/
import {api, domain, ossdomain} from '@/api';
Vue.prototype.$api = api;
Vue.prototype.$domain = domain;
Vue.prototype.$ossdomain = ossdomain;

axios.defaults.baseURL = domain.ac;
axios.defaults.withCredentials = true;
/*请求拦截器*/
axios.interceptors.request.use(config=>{
    return config
});
/*响应拦截器*/
axios.interceptors.response.use(config=>{
    if(config.data.code == 10007){//后台提示需要登录
        window.vm.$message({
                            showClose: true,
                            message: '请登录系统',
                            type: 'error'
                        });
        window.vm.$cookie.remove('isLogin');//刪除cookie登录信息
        window.location.reload()
    }
    if(config.data.code == 10020){//后台提示没有权限
        window.vm.$message({
                            showClose: true,
                            message: '您没有此权限',
                            type: 'error'
                        });
    }
    if(config.data.code == 405 || config.data.code == 406){//405实例不存在 406您没有操作此实例的权限
        window.vm.$message({
                            showClose: true,
                            message: config.data.info,
                            type: 'error'
                        });
    }
    return config
});

/*外面可以设置基础地址*/
Vue.prototype.$baseURL = function(url){
	if(url != ''){
		axios.defaults.baseURL = url
	}
};

/*向外暴露基域，方便外部查询*/
Vue.prototype.$getBaseURL = function(){
	return axios.defaults.baseURL;
};

Vue.prototype.$get = function(url, data = ''){
/*注释掉，是因为，放到sidebar里面做了判断*/
/*    var getters = this.$store.getters
    setTimeout(function(){//刚存入，就取，是取不到的，所以加延时
        axios.defaults.baseURL = getters.appLink
    }, 2000)
    if(this.$store.getters.appLink){
        axios.defaults.baseURL = this.$store.getters.appLink
    }else{
        axios.defaults.baseURL = domain.ac
    }*/
    if(data == ''){
        return axios.get(url)
    }else{
        return axios.get(url + '?' + qs.stringify(data))
    }
};

Vue.prototype.$post = function(url, data){
    return axios.post(url, qs.stringify(data))
};